# 定义计算器类


class calculator():

    # 定义加法方法
    @staticmethod
    def add(self, a: float, b: float) -> float:
        return a + b

    # 定义加法方法
    def plus(self, a: float, b: float) -> float:
        return a - b

    # 定义乘法方法
    def multiply(self, a: float, b: float) -> float:
        return a * b

    # 定义除法方法
    def divide(self, a: float, b: float) -> float:
        return a / b

    # 定义一个键盘输入方法，判断输入的字符是否可转义成数字
    def input(self, x):
        # 定义一个函数参数为键盘输入
        x = input(f"请输入计算的数:")
        # 拆分参数字符保存到列表
        X = list(x)
        # 判断第一个字符是否为负号，判断去掉第一个字符后面字符是否可转数字，判断全部字符是否可转成数字
        while not (X[0] == '-' and x[1:].isdigit() or x.isdigit()):

            print("值输入错误")
            x = input("请输入计算的数:")
        else:
            # 把X转成数字类型
            x = float(x)
            return x


if __name__ == '__main__':
    # 实例化calculator
    my_calculator = calculator()
    # 定义参数a，并判断a是否输入合法
    a = my_calculator.input("a")
    # 输入运算符
    operat = input("请输入运算符:")
    # 定义参数b，并判断b是否输入合法
    b = my_calculator.input("b")
    # 判断是否是加法
    if operat == "+":
        result = my_calculator.add(a, b)
        print(f"计算结果:{result}")
    # 判断是否是减法
    elif operat == "-":
        result = my_calculator.plus(a, b)
        print(f"计算结果:{result}")
    # 判断是否是乘法
    elif operat == "*":
        result = my_calculator.multiply(a, b)
        print(f"计算结果:{result}")
    # 判断是否是除法
    elif operat == "/":
        # 判断被除数不能为0
        if b == 0:
            print("被除数不能为O")
        else:
            result = my_calculator.divide(a, b)
            print(f"计算结果:{result}")
    else:
        print("请输入正确的运算符号")
